% !Mode:: "TeX:UTF-8"

\chapter{项目需求}

\section{简介}
本项目是“饿了么”外卖平台，能够提供展示购买食品、订单管理、积分兑换、虚拟钱包等外卖平台常用功能，能够完成一套完整的网上订餐流程。
\begin{itemize}
    \item 背景 
    
    本项目参照“饿了么官网网页版”制作。本项目专注于完成点餐业务线功能，“饿了么官网”中的其它功能暂不涉及。以下内容大致概括了本系统的项目需求：
   
    (1)用户信息管理:在用户进入系统前要求客户进行登录，未注册的用户需要 注册后方可登录。登录时需要对用户Id和密码进行校验，正确后即可登录。
   
    (2)商家信息管理：向用户提供商家名称、 地址、 图片以及食物等相关信息。
   
    (3)购物车及订单管理：允许用户向购物车中添加或删除食物，并生成相关 订单。
   
    (4)用户地址管理：一个用户可以拥有多个收货地址并对地址进行修改，保 存。
   
    (5)虚拟钱包：钱包支持充值、提现、支付、查询余额、查询交易流水这五个核心的功能。
   
    (6)积分模块：能够通过多种途径获取积分、消费积分、显示积分的获取流水记录和积分的使用流水记录。
    
    \item 约束
    
    使用Spring Cloud框架进行后端开发。
    
    使用MySQL作为后端数据库。
    
    使用Vue框架作为前端框架。
    \item 参考资料
    
    本文档参考的上游文档、资料，饿了么官网等
    
    资料名称~~版本/日期~~说明

    UML大战需求分析	2012年2月第1版	

    阿里巴巴-Java开发手册-1.7.0-嵩山版	2020年8月 1.7.0版本	

    深入理解计算机系统	2018年4月第1版	

    HTML5 权威指南	2014年1月第1版	

    CSS权威指南 第4版上下册	2019年4月	

    深入解析CSS	2020年4月第1版	

    JavaScript高级程序设计 第4版	2020年9月	

    JavaScript 指南 原书第7版	2021年4月	

    HTTP权威指南	2012年9月第1版	

    计算机网络：自顶向下方法	2022年8月第8版	

    深入理解Spring Cloud与微服务构建	2019年9月1日第2版	
    
\end{itemize}



\section{目标、涉众分析和范围}

\begin{itemize}
    \item 目标 
    
    实现商品展示和购买功能。

    实现订单管理功能。
   
    实现用户注册、登陆功能。
    
    实现虚拟钱包、积分系统功能。

    \item 涉众分析
    
    消费者能方便的进行商品的浏览，能方便的将喜欢的商品加入购物车暂时储存，能方便的进行账户的注册、登录，能方便的管理账户的基本信息、订单、收货地址、购物车。购物能够获取积分，并获取相应优惠，能够从平台的展示界面获取最新消息、商品推送等，能够使用应用内的虚拟钱包进行存储和支付。

    \item 范围
    
    本系统暂未与支付宝或微信支付对接来实现在线支付功能。

\end{itemize}


\section{业务概念分析}

\begin{itemize}
    \item 概述
    
    本系统要管理的事情主要有：外卖下单业务，积分系统，虚拟钱包，订单管理。
    \item 业务概念一览
    
    \begin{figure}[htbp]
        \centering    %居中显示%
        \includegraphics[width=0.4\textwidth]{ch1}%从figures目录下读取图片，正文中的图片的文件格式可以是.pdf,.jpg,.png,.eps等%
       % \caption{树状结构}\label{fig:xml}%图的标题和交叉引用标签，其中\lable是为图片编号所用%
        \vspace{\baselineskip}
        \end{figure}
        \newpage
\end{itemize}

\section{业务流程分析}

\begin{itemize}
    \item 概述
    
    整体上展现了购买获取积分的过程。
    \item 业务流程一览
    
    \begin{figure}[htbp]
        \centering    %居中显示%
        \includegraphics[width=0.55\textwidth]{ch2}%从figures目录下读取图片，正文中的图片的文件格式可以是.pdf,.jpg,.png,.eps等%
       % \caption{树状结构}\label{fig:xml}%图的标题和交叉引用标签，其中\lable是为图片编号所用%
        \vspace{\baselineskip}
        \end{figure}
       % \newpage
\end{itemize}

\section{功能性需求}  

\begin{itemize}
    
    \item 执行者分析
    
    \begin{figure}[htbp]
        \centering    %居中显示%
        \includegraphics[width=0.6\textwidth]{ch3}%从figures目录下读取图片，正文中的图片的文件格式可以是.pdf,.jpg,.png,.eps等%
      % \caption{树状结构}\label{fig:xml} 图的标题和交叉引用标签，其中\lable是为图片编号所用%
        \vspace{\baselineskip}
        \end{figure}
      %  \newpage
    \item 总用例图
    
    \begin{figure}[htbp]
        \centering    %居中显示%
        \includegraphics[width=0.8\textwidth]{ch4}%从figures目录下读取图片，正文中的图片的文件格式可以是.pdf,.jpg,.png,.eps等%
      % \caption{树状结构}\label{fig:xml} 图的标题和交叉引用标签，其中\lable是为图片编号所用%
        \vspace{\baselineskip}
        \end{figure}
      %  \newpage
      
\end{itemize}

 % 在文档的开头添加这行代码来引入 tabularx 包

 \begin{table}[htbp]
    \centering
    \caption{功能性需求}
    \begin{tabular}{|c c c c p{5cm}|}
    \hline
    编号 & 名称 & 执行者 & 优先级 & 描述 \\
    \hline
    1 & 注册用户 & 用户 & 高 & 用户首次进入该系统，注册用户信息 \\
    \hline
    2 & 登入系统 & 用户 & 高 & 用户依靠已有的账户登入本系统 \\
    \hline
    3 & 修改地址 & 用户 & 低 & 用户每个人都有一个地址用来接受外卖，可以修改 \\
    \hline
    4 & 查看所有卖家商品 & 用户 & 低 & 用户就能看到所上架的商家以及商家商品 \\
    \hline
    5 & 查询虚拟钱包余额 & 用户 & 低 & 每个买家拥有一个应用内的虚拟钱包，可以查看其余额 \\
    \hline
    6 & 使用虚拟钱包支付 & 用户 & 高 & 买家进入支付页面，可以选择钱包支付 \\
    \hline
    7 & 查看订单信息 & 用户 & 低 & 买家可以查看已经购买的订单信息 \\
    \hline
    8 & 查询积分 & 用户 & 高 & 买家购买了商品后，会按照一定的兑换比例来兑换积分 \\
    \hline
    \end{tabular}
    \end{table}

\begin{table}[htbp]
    \centering
    \caption{系统功能需求（续）}
    \begin{tabular}{|c c c c p{5cm}|}
        \hline
        前置条件 & 基本流程 & 结束状况 & 说明 \\
        \hline
        无 & 注册系统 开始注册 提交信息 显示结果 & 系统提示相关信息 & 用户提交的信息应该包括：用户名、密码、性别等信息 \\
        \hline
        用户已有账户 & 用户输入用户名、密码 系统给予反馈 & 用户成功登入本系统 用户的用户名或者密码错误 & 无 \\
        \hline
        用户拥有账户和密码 & 指示修改地址 提示在修改地址 提交新地址 反馈修改结果 & 将数据库中的本用户的地址修改成对应结果 & 无 \\
        \hline
        无 & 指示查看所有商品 显示所有商品或者提示无商品 & 系统的数据不会发生任何变化 & 无 \\
        \hline
        无 & 指示查询钱包余额 提示在查询余额并返回余额数目 & 对系统内数据无任何影响 & 无 \\
        \hline
        买家已经选好了商品，进入支付页面 & 提示钱包支付 用户选择钱包支付 输入金额 系统反馈支付状态 若支付成功，生成相应的交易流水 & 数据库中用户的虚拟钱包余额减少，对应商家的钱包余额增加，交易流水表增加一条新记录。 & 无 \\
        \hline
        买家已经购买了某商品 & 指示查看订单信息 提示在查看订单信息 返回查询结果 & 不会对本系统的数据有任何影响 & 无 \\
        \hline
        无 & 指示查询积 提示在查询积分并且返回积分数量 & 对系统内数据无任何影响 & 无 \\
        \hline
        \end{tabular}
\end{table}
\newpage

\section{非功能性需求}

\begin{itemize}
    \item 系架构需求
    
    说明：图中非深色部分是原来的IT架构，深色部分是新增加的情况。
    \begin{figure}[htbp]
        \centering    %居中显示%
        \includegraphics[width=0.8\textwidth]{ch5}%从figures目录下读取图片，正文中的图片的文件格式可以是.pdf,.jpg,.png,.eps等%
       % \caption{树状结构}\label{fig:xml}%图的标题和交叉引用标签，其中\lable是为图片编号所用%
        \vspace{\baselineskip}
        \end{figure}
       % \newpage
    \item 接口
    
    本项目没有非功能性需求接口。
    \item 安全性
    \begin{itemize}
        \item 程序安全
        
        设置用户访问权限。
        
        提供运行日志管理及安全审计功能，可追踪程序的历史使用情况。
        
        防止应用信息泄露（目录遍历、版本信息）。
        
        文件分离存储，增加访问权限控制，防止泄露。
        
        限定用户、IP等访问，进行高频访问、登录限制防攻击。

        \item 数据安全
        
        数据加密保护，保证数据在采集、传输、处理过程中不被偷窥、窃取、篡改。

        数据根据密级分不同网络环境存储。

        加强隐私数据保护。

        \item 系统安全性：进行容灾处理，系统的权限控制，系统的日志记录，系统的备份。
    \end{itemize}
    \item 性能
    \begin{itemize}
        \item 响应时间
        
        页面间跳转时间<=3s,精确搜索反馈结果<=1s。

        对于大数据量加载，分页展示，提供进度条及预计时间，减少用户焦虑。

        \item 吞吐量
        
        与系统并发相关，根据业务量估算系统需要支持多少并发。

        \item 资源利用率
        
        投入资源的使用率需要达到一定的水平，避免资源浪费。
    \end{itemize} 
    \item 界面
    
    统一风格，同一项目或范围内系统风格、布局保持一致。

    使用户易操作。

    符合基本的软件设计规范。

    充分考虑视觉因素，界面美观，用户使用具有舒适性，避免使用刺激性的配色。

\end{itemize} 
\section{版本修订记录}
\begin{figure}[htbp]
    \centering    %居中显示%
    \includegraphics[width=1.0\textwidth]{ch6}%从figures目录下读取图片，正文中的图片的文件格式可以是.pdf,.jpg,.png,.eps等%
   % \caption{树状结构}\label{fig:xml}%图的标题和交叉引用标签，其中\lable是为图片编号所用%
    \vspace{\baselineskip}
    \end{figure}
   % \newpage